1. Field of the Invention
The present invention relates to a method, apparatus, and computer program product for controlling write requests from a plurality of users with respect to structured documents stored in a storage that stores a plurality of structured documents with different document structures.
2. Description of the Related Art
In recent years, along with the development of information processing technologies, document data to be processed includes not only document data as a simple character string such as text data, but also document data with prescribed components that form a document such as HTML (Hypertext Markup Language), XML (Extensible Markup Language), and the like.
Some documents such as patent specifications, weekly reports, and the like have predetermined formats, and are standardized to these formats. In addition to such documents that are standardized to given formats, many documents with free formats are also present. Hence, a demand for storage and management of such documents with various formats as structured documents described in XML and the like will be increasing in the future.
A plurality of users may often read out, edit, and write identical document data. If the edit contents  from the users are consistent, all write requests should be permitted; if they are inconsistent, such write requests should be denied. Inconsistency of the contents due to a plurality of write accesses is called “conflict”.
Since a database is premised on accesses from a plurality of users, means for controlling write accesses from a plurality of users is indispensable. In a conventional relational database, under the condition that relations are designed to satisfy:
#First Normal Form
#Second Normal Form
#Third Normal Form
#Fourth Normal Form
#Boyce-Codd Normal Form, controls of write requests from a plurality of users are handled with a transaction management in units of tuple. This transaction management denies a plurality of write accesses originated simultaneously to an identical tuple. Specifically, to avoid the “conflict” in units of tuple, the transaction management handles controls of write requests so as to deny another write request during write access to a given tuple.
However, the “conflict” may occur since the relational database does not perform any transaction management in a unit that exceeds tuples.
As another example of a system for controlling write requests from a plurality of users, CVS (Concurrent Versions System) is known.
In the CVS, “line” is fixed as a write unit to each text as document data. If a plurality of write accesses are made to a single line, even when their write contents are independent from each other, the CVS determines them as “conflict”.
If the conflict has occurred, the CVS accepts all write requests that caused it, and the CVS then writes a mark indicating occurrence of conflict in document data. The user recognizes the conflict by observing that mark, and issues a new write request by checking the plurality of write contents.
In this way, the “tuple” in the conventional RDB and the “line” in the conventional CVS, which are fixedly set, are used as units to monitor if the conflict occur or not when a plurality of write accesses are requested. Hence, these techniques are not sufficient to be utilized for the above mentioned structured document processing such as XML, to prevent the conflict appropriately.